﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum ВидыОтраженияВУчете
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"4f363c7f-1d98-4ee7-b1d9-69a2f9e1f015\", \"Представление\":\"ОтражатьВУправленческомУчете\"}")]
		ОтражатьВУправленческомУчете = 0,//Отражать в управленческом учете
		[EnumMember(Value = "{\"Ссылка\":\"94d77ceb-cd54-4aa8-b85c-57f148665a8b\", \"Представление\":\"ОтражатьВБухгалтерскомУчете\"}")]
		ОтражатьВБухгалтерскомУчете = 1,//Отражать в бухгалтерском учете
		[EnumMember(Value = "{\"Ссылка\":\"c39b1fab-006a-4926-b66e-1485440c12da\", \"Представление\":\"ОтражатьВНалоговомУчете\"}")]
		ОтражатьВНалоговомУчете = 2,//Отражать в налоговом учете
		[EnumMember(Value = "{\"Ссылка\":\"6762e392-5c3f-4baa-b610-02b3e847b77d\", \"Представление\":\"ОтражатьВМеждународномУчете\"}")]
		ОтражатьВМеждународномУчете = 3,//Отражать в международном учете
		[EnumMember(Value = "{\"Ссылка\":\"c02dfacb-c04c-468f-bdbc-80a8cb9d2efe\", \"Представление\":\"ОтражатьВРегламентированномУчете\"}")]
		ОтражатьВРегламентированномУчете = 4,//Отражать в регламентированном учете
	}
	public static partial class ВидыОтраженияВУчете_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОтражатьВУправленческомУчете = new Guid("a269d9b1-e1f9-15f0-4ee7-1d984f363c7f");//Отражать в управленческом учете
		public static readonly Guid ОтражатьВБухгалтерскомУчете = new Guid("f1575cb8-6648-8b5a-4aa8-cd5494d77ceb");//Отражать в бухгалтерском учете
		public static readonly Guid ОтражатьВНалоговомУчете = new Guid("85146eb6-0c44-da12-4926-006ac39b1fab");//Отражать в налоговом учете
		public static readonly Guid ОтражатьВМеждународномУчете = new Guid("b30210b6-47e8-7db7-4baa-5c3f6762e392");//Отражать в международном учете
		public static readonly Guid ОтражатьВРегламентированномУчете = new Guid("a880bcbd-9dcb-fe2e-468f-c04cc02dfacb");//Отражать в регламентированном учете
		public static ВидыОтраженияВУчете Получить(this ВидыОтраженияВУчете Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыОтраженияВУчете Получить(this ВидыОтраженияВУчете Значение, Guid Ссылка)
		{
			if(Ссылка == ОтражатьВУправленческомУчете)
			{
				return ВидыОтраженияВУчете.ОтражатьВУправленческомУчете;
			}
			else if(Ссылка == ОтражатьВБухгалтерскомУчете)
			{
				return ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете;
			}
			else if(Ссылка == ОтражатьВНалоговомУчете)
			{
				return ВидыОтраженияВУчете.ОтражатьВНалоговомУчете;
			}
			else if(Ссылка == ОтражатьВМеждународномУчете)
			{
				return ВидыОтраженияВУчете.ОтражатьВМеждународномУчете;
			}
			else if(Ссылка == ОтражатьВРегламентированномУчете)
			{
				return ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете;
			}
			return ВидыОтраженияВУчете.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыОтраженияВУчете Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыОтраженияВУчете Значение)
		{
			switch (Значение)
			{
				case ВидыОтраженияВУчете.ОтражатьВУправленческомУчете: return ОтражатьВУправленческомУчете;
				case ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете: return ОтражатьВБухгалтерскомУчете;
				case ВидыОтраженияВУчете.ОтражатьВНалоговомУчете: return ОтражатьВНалоговомУчете;
				case ВидыОтраженияВУчете.ОтражатьВМеждународномУчете: return ОтражатьВМеждународномУчете;
				case ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете: return ОтражатьВРегламентированномУчете;
			}
			return Guid.Empty;
		}
	}
}